package com.flying.classmember.inner;


/**
 * @ClassName:
 * @author: flying
 * @date 2024 2024/12/11 12:25
 * @Description: 静态内部类
 *
 * 静态内部类的特点
 * ！！！！ 静态内部类不持有外部类对象的引用
 * 1. 定义在类里方法外，和成员内部类的位置一样，区别在于前面使用 static修饰符，属于类的一个成员
 * 2. 静态内部类只能访问外部类的静态属性
 * 3. 静态内部类可以声明静态属性
 * 4. 可以通过 外部类名.静态内部类名() 直接创建一个静态内部类对象
 */
public class StaticOuter {
    private int x=10;
    private static int y =20;
    private String s1=new String();

    static class StaticInner{
        int a=2;
        public static int m=10086;
        void test(){
            // 静态内部类不能访问外部类的普通属性：及不持有外部类的对象引用
//            System.out.println(s1);
//            System.out.println(x);
            //  可以访问外部类的静态属性
            System.out.println(y);
        }
    }


    public void demo(){
        System.out.println();
    }
}
